package com.it.admin;

import com.it.pojo.User;
import com.it.pojo.params.RegisterQuery;
import com.it.pojo.params.user.UserListQuery;
import com.it.pojo.vo.user.AdminUserEditVO;
import com.it.pojo.vo.user.UserInfoVO;

import java.util.Map;

public interface AdminUserService {
    /**
     * 登录
     *
     * @param username
     * @param password
     * @return
     */
    String login(String username, String password);

    /**
     * 注册
     *
     * @param registerQuery
     * @return
     */
    int register(RegisterQuery registerQuery);

    /**
     * 查询
     *
     * @param userQuery
     * @return
     */
    Map<String, Object> listUsers(UserListQuery userQuery);

    /**
     * 删除
     *
     * @param userId
     * @return
     */
    int deleteUserById(Integer userId);

    /**
     * 新增用户
     *
     * @param user
     * @return
     */
    int saveUser(User user);

    /**
     * 根据用户id查询用户信息
     *
     * @param userId
     * @return
     */
    AdminUserEditVO getUserById(Integer userId);

    /**
     * 根据用户id修改用户信息
     *
     * @param user
     * @return
     */
    int updateUserById(User user);

    /**
     * 通过token获取用户信息
     *
     * @param token
     * @return
     */
    UserInfoVO getUserByToken(String token);

    /**
     * 登出
     *
     * @param userId
     * @return
     */
    int logout(Integer userId);
}
